// SplashWnd.h: interface for the CSplashWnd class.
//
//////////////////////////////////////////////////////////////////////

// CG: This file was added by the Splash Screen component.

#ifndef _SPLASH_SCRN_
#define _SPLASH_SCRN_

// Splash.h : header file
//

/////////////////////////////////////////////////////////////////////////////
//   Splash Screen class

class DllExport CSplashWnd : public CWnd
{
public:
#define SplashStyle INT
#define	eWAITCURSOR  1
#define	eARROWCURSOR  2
#define	eLBUTTONHIDEN  4
	// Construction
public:
	CSplashWnd(const CString& strBmpPath, CWnd* pParent, SplashStyle eStyle = eARROWCURSOR);
	
	// Attributes:
private:
	CBitmap m_bitmap;
	CString m_strBmpPath;
	CWnd* m_pParent;
	SplashStyle m_eStyle;
	BOOL m_bIsFirstShow;
	
	// Operations
public:
	UESoft::ErrorStatus ShowSplash();
	UESoft::ErrorStatus HideSplash();

private:
	BOOL ShowSplash_();

	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSplashWnd)
	//}}AFX_VIRTUAL
	
	// Implementation
public:
	~CSplashWnd();
	
private:
	static DWORD WINAPI SplashWndProc( LPVOID lpWnd );

private:
	DWORD m_nThreadID;
	HANDLE m_Event;

protected:
	BOOL Create(CWnd* pParentWnd = NULL);
	void HideSplashScreen();
	
	// Generated message map functions
protected:
	//{{AFX_MSG(CSplashWnd)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnPaint();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};


#endif
